iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
DevOps

從認識Docker到精通系列 第 13

第十三天-Kubernetes

  • 分享至 

  • xImage
  •  

Kubernetes 簡介


Kubernetes,因為名字太長了,在首字母K和尾字母s中間有8個英文字故簡稱K8s,最初由Google開發,並捐贈給Cloud Native Computing Foundation,是一個部署容器化應用程式的開源編排器 (orchestrator),他的功能如下:

  • 可以同時部署到多台機器上 (developement)
  • 當服務的負載變大時,可以實現自動擴展容器 (auto-scaling)
  • 監測容器的狀態,若容器出現狀態會自動以另一個容器作替代 (Management)

幾個名詞

微服務

微服務和 k8s 息息相關,也是 k8s 之所以存在最主要的目的:管理微服務,在以前的程式專案中,可能整包程式碼便包含了整個程式的所有部件(像是web application就把前後端的程式碼都包在一起),好處是只需要維護一部分程式碼就好,但也是因為全部的程式碼都用同一個語言寫在一起,後續的維護、擴展都會受到限制,因此,就有人想到了把服務內容拆分成部件,利用類似於堆積木的方式,互相使用API作為溝通,並組合成一個大系統。簡單來說,採用微服務的好處有以下幾點:

  • 故障風險低,易於除錯:每個微服務各司其職,哪一個服務掛了很明顯就可以知道是哪一個地方出了問題
  • 易平行擴展:可以調整資源給高使用量的微服務,提高處理效能
  • 語言依賴性:因為是使用API作為溝通,因此每個微服務之間僅需確保API格式統一的問題而已,可以針對服務特性選取更適合的開發語言來開發

K8s 的元件

在正式進入介紹k8s的名詞之前,先以簡單的方式來講解k8s的架構,不然直接放出下面這張圖也有點嚇人(OwO)

下面這一張圖,是在k8s docs的第一張小圖,我們可以從這張圖來簡單的了解一下k8s的架構

在最左側的部分,有著不同顏色所組成的圓圈,他們代表的就是各式各樣的微服務,跟docker中的每一個container意義是一樣的,但是在k8s中,會將這每一個應用服務,以 Pod 這個名稱來稱呼,這是k8s服務中的最小單位,每個pod都有各自識別用的yml,並可以以API來溝通;

接著來到中間K8s Logo的部分,他代表著k8s的管理部分的功能,叫做 control plane,負責管理health check和資源調度等,可以說是k8s最重要的一部分。

最後則是node的部分:我們會把運行一個運作單位稱作為node,依工作內容可再分為master node 跟worker node (slave node),當所有的node組合在一起,就稱為 Cluster


上一篇
第十二天-Recap docker
下一篇
第十四天-認識 kubernetes-2
系列文
從認識Docker到精通30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言